package com.uzai.common.enums;

/**
 * @Auther: xiaoyuexl
 * @Date: 2022/7/20 10:33
 * @Description:
 */
public enum TakeBalReturnStatusEnum {
    UNKNOWN(-1,"未知情况"),
    /**
     * 自动提现成功
     */
    AUTO_TAKEBAL_SUCCESS(0,"自动提现成功"),

    /**
     * 自动提现失败-自动转手动处理
     */
    AUTO_TAKEBAL_FAIL_TO_MANUAL(1,"自动提现失败-自动转手动处理"),

    /**
     * 申请提现成功-手动
     */
    MANUAL_TAKEBAL_SUCCESS(2,"申请提现成功-手动"),

    /**
     * 自动提现失败-提现金额超过限额转手动处理
     */
    AUTO_FAIL_BAL_OVERRUN(3,"自动提现失败-提现金额超过限额转手动处理"),

    /**
     * 提现审核成功-手动打款并审核成功
     */
    TAKE_SUCC_MANUAL_TRANS(4,"提现审核成功-手动打款并审核成功"),

    /**
     * 提现拒绝并返还用户账户-手动
     */
    TAKE_REFUSE_ADD_BAL(5,"提现拒绝并返还用户账户-手动"),

    /**
     * 提现拒绝并扣除提现金额-手动
     */
    TAKE_REFUSE_SUB_BAL(6,"提现拒绝并扣除提现金额-手动"),

    /**
     * 申请提现失败-未达到提现门槛
     */
    TAKE_FAILL_DOORSILL_ERR(7,"申请提现失败-未达到提现门槛"),

    /**
     * 申请提现失败-至少有一笔订单
     */
    TAKE_FAIL_ORDER_ERR(8,"申请提现失败-至少有一笔订单"),

    /**
     * 申请提现失败-限制每日提现次数
     */
    TAKE_FAIL_COUNT_ERR(9,"申请提现失败-限制每日提现次数"),

    /**
     * 申请提现失败-限制固定日期提现
     */
    TAKE_FAIL_DATE_ERR(10,"申请提现失败-限制固定日期提现"),

    /**
     * 申请提现失败——余额小于等于0元
     */
    TAKE_FAIL_BAL_ERR(11,"申请提现失败——余额小于等于0元"),

    /**
     * 申请提现失败——有未处理的提现
     */
    TAKE_FAIL_SINGLE_ERR(12,"申请提现失败——有未处理的提现"),

    /**
     * 群内申请提现——提示必须添加好友后私聊提现
     */
    GROUP_TAKE_ERR(13,"群内申请提现——提示必须添加好友后私聊提现"),

    /**
     * 申请提现失败-未绑定支付宝
     */
    TAKE_FAIL_NOT_ALIPAY(14,"申请提现失败-未绑定支付宝"),

    /**
     *  支付宝自动支付时判断买家信息不正确
     */
    TAKE_ALIPAY_ERR(15," 支付宝自动支付时判断买家信息不正确"),

    /**
     * 支付宝自动提现成功
     */
    AUTO_ALIPAY_TAKEBAL_SUCCESS(16,"支付宝自动提现成功"),

    /**
     * 申请提现失败——有维权订单
     */
    TAKE_FAIL_REFUND_ORDER_ERR(17,"申请提现失败——有维权订单"),

    /**
     * 限制用户多少天内未下单, 禁止提现。
     */
    LIMIT_USER_PLACE_ORDER_ERR(18,"申请提现失败-用户x天未下单"),

    /**
     * 申请提现时-申请失败，提现限流 1 分钟（1 分钟内重复发送提现指令)
     */
    TAKE_FAIL_TRIGGER_LIMIT_ERR(19,"申请提现失败-提现限流1分钟触发一次")
    ;

    private Integer value;
    private String desc;
    TakeBalReturnStatusEnum(Integer value,String desc) {
        this.value = value;
        this.desc = desc;
    }

    public Integer getValue() {
        return value;
    }

    public String getDesc() {
        return desc;
    }

    public static TakeBalReturnStatusEnum getByValue(Integer value) {
        if (value == null) {
            return null;
        }
        for (TakeBalReturnStatusEnum type: TakeBalReturnStatusEnum.values()) {
            if (type.getValue().intValue() == value) {
                return type;
            }
        }
        return null;
    }
}
